FIG. 1 is an illustration of the communication paths between a plurality of computer programs operating in a computer network. The computer programs may operate on a single computer, but most likely operate on a plurality of separate computers in a computer network. The computer network may be a simplified network connection such as a local area network (LAN) or may be a larger network such as a wide area network (WAN) or the Internet. As seen in FIG. 1, each of the four programs has a communication path with the three other programs. The programs can send messages to or receive messages from the other programs along the communication paths. While the design depicted in FIG. 1 is sufficient for a small number of programs, the number of communication paths becomes extensive in a large computer network. The design depicted in FIG. 1 also does not allow for a contingency communication method when one of the programs becomes unavailable. Consequently, a need arises for a method for allowing a plurality of programs to communicate wherein the number of communication paths is reduced and wherein a contingency communication method exists for instances when one of the programs becomes unavailable.
Message queuing software was developed to address the problems described above. Message queuing software is also known as store-and-forward software and message-oriented middleware. Examples of message queuing software are MICROSOFT® MSMQ, WEBSPHERE® MQ, and TIBCO®. As seen in FIG. 2, an element of the message queuing software called a message queue manager acts as an intermediary between the various programs. The message queue manager reduces the number of required communication paths. When one of the programs becomes unavailable, the message queue manager also stores the messages for the unavailable program in a message queue until the program becomes available. The message queue manager queues the messages, distributes the messages, and verifies that the messages are delivered to the appropriate recipient, thereby preventing loss of the messages. Thus, message queuing software solves the above stated problems and allows computer programs to communicate in a more efficient manner.
One of the processes involved in message queuing software is the validation of messages. When a recipient program receives a message, the recipient program validates the message to verify that the message is in the proper format. If the message is not in the proper format, the recipient program cannot process the message further but also has no easy way to inform the sender that its message is being ignored. One of the problems associated with the prior art message validation process is that the transmission of invalid messages from the sender program to the recipient program is an inefficient use of the message channels between the programs and the message queue manager. This problem is compounded when the sender program sends an invalid message to a plurality of recipient programs. A more efficient method would check the validity of the messages before the message is distributed to the recipient programs. Consequently, a need exists in the art for a method for validating messages in a message queuing environment in which the messages are validated prior to distribution to the recipient programs.